package demo.api.enterprise;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.codec.binary.Base64;
import org.apache.commons.io.FileUtils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import util.HttpClientUtil;
/**
 * 4.11	电子签章
 *
 * @throws IOException
 */
public class FileSignature {
	private static String appKey = "cAwut4VATycNMq17NZeFUD63pe83l2OJ";
    private static String appSecrty = "3BAlrfr7lW8kwlCMfo1dXS8Syn5q5qjS";
    private static String baseUrl = "http://smp-test.szitrus.com.cn/smp-api";
    private static String api = "/api/enterprise/file/signature";

	public static void main(String[] args) throws IOException {
		String url = baseUrl.concat(api);
		// 请求参数
        Map<String, String> params = new HashMap<>();
        JSONArray rules = new JSONArray();
        // 关键字签章规则
        JSONObject keywordsRule = new JSONObject();
        keywordsRule.put("type", "keywords");//关键字盖章
        keywordsRule.put("text", "双方对本协议之约定事项");//关键字
        keywordsRule.put("page", "-1");
        keywordsRule.put("offsetX", "0");//印章位置横向偏移，0 为不偏移，负数代表往左偏移，正数代表往右偏移，单位为像素
        keywordsRule.put("offsetY", "0");//印章位置纵向偏移，0 为不偏移，负数代表往下偏
        // 加入关键字盖章规则
        rules.add(keywordsRule);
        
        JSONObject positionRule = new JSONObject();
        positionRule.put("type", "position");//坐标方式盖章
        positionRule.put("page", "-1");//页码表达式,"0"代表全文检索, "-1"代表最后一页, "1-3"代表 1至3页 
        								//"1,2,3"代表第一页/第二页/第三页检索, 分割符为半角逗号支持组合,例如 "1-3, 4, 5, -1"
        
        positionRule.put("offsetX", "0");//印章位置横向偏移，0 为不偏移，负数代表往左偏移，正数代表往右偏移，单位为像素
        positionRule.put("offsetY", "0");//印章位置纵向偏移，0 为不偏移，负数代表往下偏
        positionRule.put("positionX", "150");//印章在 PDF 文档中的横坐标，单位为像素
        positionRule.put("positionY", "320");//印章在 PDF 文档中的纵坐标，单位为像素
        // 加入关键字盖章规则
        rules.add(positionRule);
        
//        params.put("file_url", "http://xxx.xxx.com/xxx/xxx.pdf");
        params.put("file_data", Base64.encodeBase64String(FileUtils.readFileToByteArray(new File("D:/smp_temp/test.pdf"))));
        params.put("operator", "zhang_dachui");
        params.put("official_seal_id", "1");
        params.put("doc_title", "购销合同");
        params.put("doc_number", "TW-GXHT-20200520A00001");

        params.put("rules", rules.toJSONString());
	    String resStr =  HttpClientUtil.getResponse(url, params, appKey, appSecrty);
	    JSONObject resJson = JSON.parseObject(resStr);	
	    System.out.println(resJson);
	}
}
